Delay hiding the cast icon for 3 seconds. DO NOT MERGE Ensure that the user has had a chance to see it for a few seconds after screen recording has ended. Bug: 19121797 (cherry picked from commit 8fd25bf7711aabffe73213ba1f9056f285270695) Change-Id: I14d9fb54521dc6d60822e7c683e4e92fd62cdc6a 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java index 47e1ab5..2947258 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java 
@@ -102,6 +102,14 @@  }  };   + private Runnable mRemoveCastIconRunnable = new Runnable() { + @Override + public void run() { + if (DEBUG) Log.v(TAG, "updateCast: hiding icon NOW"); + mService.setIconVisibility(SLOT_CAST, false); + } + }; +  public PhoneStatusBarPolicy(Context context, CastController cast) {  mContext = context;  mCast = cast; @@ -293,11 +301,17 @@  }  }  if (DEBUG) Log.v(TAG, "updateCast: isCasting: " + isCasting); + mHandler.removeCallbacks(mRemoveCastIconRunnable);  if (isCasting) {  mService.setIcon(SLOT_CAST, R.drawable.stat_sys_cast, 0,  mContext.getString(R.string.accessibility_casting)); + mService.setIconVisibility(SLOT_CAST, true); + } else { + // don't turn off the screen-record icon for a few seconds, just to make sure the user + // has seen it + if (DEBUG) Log.v(TAG, "updateCast: hiding icon in 3 sec..."); + mHandler.postDelayed(mRemoveCastIconRunnable, 3000);  } - mService.setIconVisibility(SLOT_CAST, isCasting);  }    private final CastController.Callback mCastCallback = new CastController.Callback() {